/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.fyx.util;

import java.util.Collection;
import org.fyx.core.PermissionDeniedException;
import org.fyx.core.context.FyxContextFactory;

/**
 * Staticka trida obsahujici obecne metody metody pro praci s jadrem.
 *
 * Navrhovy vzor: Utility
 * 
 * @author xljan
 */
public final class FyxUtility {
    private FyxUtility(){
    }
    
    /**
     * Zkontroluje jestli ma aktualni uzivatel pravo na urcitou roli.
     * Pokud nema, vyvrhne vyjimku {@link PermissionDeniedException}.
     * 
     * @param role uzivatelska role
     */
    public static void checkRole(String role){
        if(!FyxContextFactory.getContext().isUserInRole(role)){
            throw new PermissionDeniedException();
        }
    }
    
    /**
     * Zkontroluje jestli ma aktualni uzivatel pravo na urcite role.
     * Pokud alespon na jedu nema, vyvrhne vyjimku 
     * {@link PermissionDeniedException}.
     * 
     * @param role uzivatelske role
     */
    public static void checkRoles(Collection<String> roles){
        for (String role : roles) {
            checkRole(role);
        }
    }
}
